# -*- coding: utf-8 -*-

# 阶层
# 1! = 1
# 2! = 2*1
# 3! = 3*2*1
# 4! = 4*3*2*1
def func(n):  # n 的阶乘
    i = 1  # 计数的变量 第一次  i  1
    j = 1  # 1的阶乘 第一次  j  1
    while i <= n:  # 计数为条件  增加到不满足时候跳出循环
        yield j  # 生成器暂停函数并输出值 第一次  1
        i += 1  # 计数自增1 第二次  i  2 第三次   i  3 第四次   i  4  第5 次  i 5
        j = j * i  # 第二次  j  2 第三次  j  2 * 3 = 6 第四次   j   2 * 3 * 4    第5 次  2 * 3 * 4 * 5


print(sum(func(10)))
